package com.appspot.didit.client.tag;

import java.util.ArrayList;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface TagServiceAsync {
	void save(Tag t, AsyncCallback<Tag> callback);
	@SuppressWarnings("unchecked")
	void update(Tag t, AsyncCallback callback);
	void loadTags(Long user_id, AsyncCallback<ArrayList<Tag>> callback);
	void share(Long tag_id, String username, AsyncCallback callback);
	void share(String tagSignature, String username, AsyncCallback callback);
	void withdrawShare(Long tag_id, String username, AsyncCallback callback);
	void rejectShare(Long tag_id, String username, AsyncCallback callback);
	void shareWithEMail(Tag t, String email, AsyncCallback callback);
	void combineAAndBAsA(Tag a, Tag b, AsyncCallback callback);
	void acceptInvitation(String tagSignature, String username, AsyncCallback callback);
	void sendInvitation(Tag t, String email, AsyncCallback callback);
}
